﻿using System.Collections.Generic;

namespace MotorMetricas.Entidades
{
    /// <summary>
    /// Clase que maneja las instancias de usuarios que sean creados
    /// </summary>
    public class Usuario:Entidad
    {
        private string _nombre;
        private string _segundoNombre;
        private string _apellido;
        private string _segundoApellido;
        private string _email;
        private int _id;

        private Credencial _credencial;
        private List<Rol> _roles;

        public Usuario()
        { 
        }
        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="nombre">Nombre del usuario a crear</param>
        /// <param name="segundoNombre">
        /// Segundo nombre del usuario a crear
        /// </param>
        /// <param name="apellido">Apellido del usuario a crear</param>
        /// <param name="segundoApellido">
        /// Segundo apellido del usuario a crear
        /// </param>
        /// <param name ="id">Id del usuario a crear</param>
        /// <param name="email">Email del usuario a crear</param>
        /// <param name="credencial">Credencial del usuario a crear</param>
        /// <param name="roles">Roles del usuario a crear</param>
        
        public Usuario( string nombre, string segundoNombre, string apellido, 
            string segundoApellido, string email, int id,Credencial credencial, 
            List<Rol> roles )
        {
            _nombre = nombre;
            _segundoNombre = segundoNombre;
            _apellido = apellido;
            _segundoApellido = segundoApellido;
            _email = email;
            _id = id;

            _credencial = credencial;
            _roles = roles;
        }

        /// <summary>
        /// Get y set del atributo _nombre
        /// </summary>
        public string Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        /// <summary>
        /// Get y set del atributo _segundoNombre
        /// </summary>
        public string SegundoNombre
        {
            get { return _segundoNombre; }
            set { _segundoNombre = value; }
        }

        /// <summary>
        /// Get y set del atributo _apellido
        /// </summary>
        public string Apellido
        {
            get { return _apellido; }
            set { _apellido = value; }
        }

        /// <summary>
        /// Get y set del atributo _segundoApellido
        /// </summary>
        public string SegundoApellido
        {
            get { return _segundoApellido; }
            set { _segundoApellido = value; }
        }

        /// <summary>
        /// Get y set del atributo _email
        /// </summary>
        public string Email
        {
            get { return _email; }
            set { _email = value; }
        }

        /// <summary>
        /// Get y set del atributo _credencial
        /// </summary>
        public Credencial Credencial
        {
            get { return _credencial; }
            set { _credencial = value; }
        }

        /// <summary>
        /// Get y set del atributo _roles
        /// </summary>
        public List<Rol> Roles
        {
            get { return _roles; }
            set { _roles = value; }
        }

        /// <summary>
        /// Get y set del atributo _id
        /// </summary>
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }

    }
}
